package com.yhy.common.wechat.util;

import com.yhy.common.wechat.config.WxConfig;
import com.yhy.common.wechat.model.WxResult;
import lombok.SneakyThrows;
import me.chanjar.weixin.common.bean.WxOAuth2UserInfo;
import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken;
import me.chanjar.weixin.mp.api.WxMpService;

public class WxMpUtil {

    @SneakyThrows
    public static WxResult<WxOAuth2UserInfo> get(String appId, String code) {
        final WxMpService service = WxConfig.getMpServices().get(appId);
        if (!service.switchover(appId)) {
            throw new IllegalArgumentException(String.format("未找到对应appId=[%s]的配置，请核实！", appId));
        }
        WxOAuth2AccessToken accessToken = service.getOAuth2Service().getAccessToken(code);
        WxOAuth2UserInfo user = service.getOAuth2Service().getUserInfo(accessToken, null);
        return WxResult.ok(user);
    }

}
